// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-9-15 18:54:02


// Source File Name:   lm.java

package com.zelix;

import java.io.*;
import java.util.*;


//            jm, it, fh, xb, 
//            wb, dc, zo, ss, 
//            ks, ms, is, vs, 
//            ns, os, ts, ps, 
//            qs, rs, us, ws, 
//            xs, ys, zs, om, 
//            h5, mm, sm, lt, 
//            lu, ou, yx, bs, 
//            nx, px, ly, qy, 
//            vy, zu, gs, jb, 
//            yg, ed

public class lm extends jm
{

    static final String d[] = {
        "Z", "e", "l", "i", "x"
    };
    static final String e = z(z("e6\0056+\nSyG"));
    private int f;
    Vector g;
    Vector h;
    Vector i;
    Vector j;
    Vector k;
    Vector l;
    Vector m;
    Vector n;
    Vector o;
    Vector p;
    Vector q;
    Vector r;
    Vector s;
    private static String z[];

    public lm(jb jb, PrintWriter printwriter, lt lt1)
        throws IOException, dc
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        super(lt1);
        j = new Vector();
        k = new Vector();
        n = new Vector();
        o = new Vector();
        p = new Vector();
        q = new Vector();
        r = new Vector();
        s = new Vector();
        i1 = jb.readUnsignedShort();
        f = i1;
        super.b = new is[i1];
        l = new Vector(Math.max(5, (int)((double)i1 * 1.5D)));
        h = new Vector(Math.max(5, (int)((double)i1 * 0.20000000000000001D)));
        i = new Vector(Math.max(5, (int)((double)i1 * 0.14999999999999999D)));
        g = new Vector(Math.max(5, (int)((double)i1 * 0.089999999999999997D)));
        m = new Vector(Math.max(5, (int)((double)i1 * 0.050000000000000003D)));
        super.b[0] = xs.a(this, 1);
        j1 = 1;
        if(!flag) goto _L2; else goto _L1
_L1:
        is is1 = is.a(j1, jb, this);
        super.b[j1++] = is1;
        if(is1.i() == 2)
            super.b[j1++] = xs.a(this, 1);
        a(is1);
_L2:
        if(j1 >= i1)
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void g()
    {
        if(j())
        {
            return;
        } else
        {
            int i1 = super.b.length;
            int j1 = i1;
            int k1 = i1 + 6;
            is ais[] = new is[k1];
            System.arraycopy(super.b, 0, ais, 0, i1);
            ais[j1++] = ps.a(this, 7, j1);
            ais[j1++] = ps.a(this, 8, j1);
            ais[j1++] = ps.a(this, 9, j1);
            ais[j1++] = ps.a(this, 10, j1);
            ais[j1++] = ps.a(this, 11, j1);
            ais[j1] = ps.a(this, 12, j1);
            super.b = ais;
            return;
        }
    }

    public synchronized void a(Vector vector)
    {
        int i1;
        int j1;
        int k1;
        boolean flag;
        flag = is.g;
        i1 = vector.size();
        j1 = 0;
        k1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        j1 += ((is)vector.elementAt(k1)).i();
        k1++;
_L2:
        if(k1 < i1) goto _L1; else goto _L3
_L3:
        int l1;
        is ais[];
        int i2;
        l1 = super.b.length;
        ais = new is[l1 + j1];
        System.arraycopy(super.b, 0, ais, 0, l1);
        i2 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        is is1 = (is)vector.elementAt(i2);
        is1.a(l1);
        ais[l1++] = is1;
        if(is1.i() == 2)
        {
            ais[l1] = xs.a(this, 1);
            l1++;
        }
        a(is1);
        i2++;
_L5:
        if(i2 >= i1)
        {
            super.b = ais;
            return;
        }
        if(true) goto _L4; else goto _L6
_L6:
    }

    private void a(is is1)
    {
        boolean flag = is.g;
        int i1 = is1.l();
        switch(i1)
        {
        case 2: // '\002'
        default:
            break;

        case 7: // '\007'
            g.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 12: // '\f'
            h.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 10: // '\n'
            i.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 11: // '\013'
            j.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 9: // '\t'
            k.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 1: // '\001'
            l.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 8: // '\b'
            m.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 3: // '\003'
            n.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 5: // '\005'
            o.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 4: // '\004'
            p.addElement(is1);
            if(!flag)
                break;
            // fall through

        case 6: // '\006'
            q.addElement(is1);
            break;
        }
    }

    public void a(Hashtable hashtable)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = g.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        ((ks)g.elementAt(j1)).a(hashtable);
        j1++;
_L2:
        if(j1 < i1) goto _L1; else goto _L3
_L3:
        int k1;
        i1 = h.size();
        k1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        if(h.elementAt(k1) != null && (h.elementAt(k1) instanceof ws))
            ((ws)h.elementAt(k1)).a(hashtable);
        k1++;
_L5:
        if(k1 >= i1)
            return;
        if(true) goto _L4; else goto _L6
_L6:
    }

    public void b(Hashtable hashtable)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        zs zs1 = (zs)s.elementAt(i1);
        String s1 = zs1.b();
        String s2 = is.a(s1, hashtable);
        if(!s2.equals(s1))
            zs1.a(s2);
        i1++;
_L2:
        if(i1 >= s.size())
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void a(Hashtable hashtable, HashSet hashset, it it1, Hashtable hashtable1)
    {
        ly ly1;
        int i1;
        boolean flag1;
        flag1 = is.g;
        ly1 = null;
        if(hashtable1 != null)
            ly1 = new ly(hashtable1);
        i1 = 0;
        if(!flag1) goto _L2; else goto _L1
_L1:
        zs zs1;
        String s1;
        String s2;
        int j1;
        StringBuffer stringbuffer;
        String s3;
        int k1;
        ys ys1 = (ys)m.elementAt(i1);
        if(hashset.contains(ys1))
            continue;
        zs1 = ys1.m();
        s1 = zs1.b();
        s2 = s1;
        j1 = s2.length();
        stringbuffer = null;
        s3 = null;
        if(!s2.endsWith(";"))
            break MISSING_BLOCK_LABEL_236;
        stringbuffer = new StringBuffer();
        if(!s2.startsWith("["))
            break MISSING_BLOCK_LABEL_195;
        stringbuffer.append('[');
        k1 = 1;
        if(!flag1) goto _L4; else goto _L3
_L3:
        char c = s2.charAt(k1);
        if(c == '[')
        {
            stringbuffer.append('[');
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        if(c != 'L')
            continue;
        stringbuffer.append('L');
        if(!flag1)
            break MISSING_BLOCK_LABEL_216;
        k1++;
_L4:
        if(k1 < j1) goto _L3; else goto _L5
_L5:
        if(!flag1)
            break MISSING_BLOCK_LABEL_216;
        if(!s2.startsWith("L"))
            continue;
        stringbuffer.append('L');
        s3 = ";";
        s2 = s2.substring(stringbuffer.length(), j1 - 1);
        StringTokenizer stringtokenizer;
        int k2;
        boolean flag;
        String s4;
label0:
        {
            flag = false;
            if(s2.indexOf('.') != -1)
            {
                s4 = s2.replace('.', '/');
                flag = true;
                if(!flag1)
                    break label0;
            }
            s4 = s2;
        }
        String s5;
        if((s5 = (String)hashtable.get(s4)) != null && s4.length() >= zo.n && Character.isJavaIdentifierStart(s4.charAt(0)) && (s2.indexOf('.') != -1 || s2.indexOf('/') != -1 && s1.endsWith(";")))
        {
            if(flag)
                s5 = s5.replace('/', '.');
            zs1.a((stringbuffer == null ? "" : stringbuffer.toString()) + s5 + (s3 == null ? "" : s3));
            if(!flag1)
                continue;
        }
        if(ly1 == null)
            continue;
        if(it1.f(s1))
        {
            String s6 = yx.b(s1, ly1);
            if(s6.equals(s1))
                continue;
            zs1.a(s6);
            if(!flag1)
                continue;
        }
        int l1 = s1.indexOf("/");
        int i2 = s1.lastIndexOf("/");
        int j2 = s1.indexOf(".");
        if(l1 > 0 && j2 > 0 && i2 < j2 && j2 < s1.length() - 1)
        {
            String s7 = it1.e(s1);
            if(s7 == null)
                continue;
            String s8 = yx.a(s7, s1, ly1);
            if(s8.equals(s1))
                continue;
            zs1.a(s8);
            if(!flag1)
                continue;
        }
        if(j2 != -1 || l1 != 0 || i2 != s1.length() - 1 || zu.a(s1, '/') <= 2)
            continue;
        stringtokenizer = new StringTokenizer(s1, "/");
        k2 = 0;
        if(!flag1) goto _L7; else goto _L6
_L6:
        String s9 = stringtokenizer.nextToken();
        if(!a(s9))
            return;
        if(k2++ == 0 && s9.length() < 2)
            return;
_L7:
        if(stringtokenizer.hasMoreTokens()) goto _L6; else goto _L8
_L8:
        String s10 = yx.b(s1, new ly(hashtable1));
        if(!s1.equals(s10))
            zs1.a(s10);
        i1++;
_L2:
        if(i1 >= m.size())
            return;
        if(true) goto _L1; else goto _L9
_L9:
    }

    public ws a(String s1, String s2, Vector vector)
    {
        zs zs1 = new zs(0, this, s1);
        zs zs2 = new zs(0, this, s2);
        ws ws1 = new ws(0, this, zs1, zs2, null);
        vector.addElement(ws1);
        vector.addElement(zs1);
        vector.addElement(zs2);
        return ws1;
    }

    public void a(qy qy1, qy qy2, PrintWriter printwriter)
    {
        int i1;
        boolean flag;
        flag = is.g;
        a(m, qy1, qy2, printwriter);
        a(g, qy1, qy2, printwriter);
        a(h, qy1, qy2, printwriter);
        a(i, qy1, qy2, printwriter);
        a(j, qy1, qy2, printwriter);
        a(k, qy1, qy2, printwriter);
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        b((is)r.elementAt(i1));
        i1++;
_L2:
        if(i1 >= r.size())
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    private void a(Vector vector, qy qy1, qy qy2, PrintWriter printwriter)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = vector.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        is is1 = (is)vector.elementAt(j1);
        is is2 = is1.a(qy1, qy2, printwriter);
        if(is2 != is1)
        {
            vector.setElementAt(is2, j1);
            super.b[is1.j()] = is2;
            if(is2 instanceof ps)
                r.addElement(is2);
        }
        j1++;
_L2:
        if(j1 >= i1)
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public synchronized zs a(String s1, Vector vector)
    {
        zs zs1 = new zs(0, this, s1);
        vector.add(zs1);
        return zs1;
    }

    public void a(qy qy1, qy qy2)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        zs zs1 = (zs)l.elementAt(i1);
        if(!qy1.b(zs1))
            s.addElement(zs1);
        i1++;
_L2:
        if(i1 < l.size()) goto _L1; else goto _L3
_L3:
        int j1 = (qy1.c() - qy1.f()) + (qy2.c() - qy2.f()) * 3;
        if(j1 <= 0) goto _L5; else goto _L4
_L4:
        int k1;
        Iterator iterator;
        k1 = super.b.length;
        is ais[] = new is[k1 + j1];
        System.arraycopy(super.b, 0, ais, 0, k1);
        super.b = ais;
        ais = null;
        nx nx1 = new nx(qy2.e());
        Collections.sort(nx1);
        iterator = nx1.iterator();
        if(!flag) goto _L7; else goto _L6
_L6:
        ws ws1;
        Object obj;
        int l1;
        int i2;
        ws1 = (ws)iterator.next();
        obj = qy2.d(ws1);
        l1 = ((Vector) (obj)).size();
        i2 = 1;
        if(!flag) goto _L9; else goto _L8
_L8:
        h5 h5_1 = (h5)((Vector) (obj)).elementAt(i2);
        int k2 = k1++;
        ws ws2 = ws1.a(k2, qy1);
        super.b[k2] = ws2;
        h.addElement(ws2);
        h5_1.a(ws2);
        i2++;
_L9:
        if(i2 < l1) goto _L8; else goto _L7
_L7:
        if(iterator.hasNext()) goto _L6; else goto _L10
_L10:
        nx nx2 = new nx(qy1.e());
        Collections.sort(nx2);
        obj = nx2.iterator();
        if(!flag) goto _L12; else goto _L11
_L11:
        zs zs2;
        Vector vector;
        int j2;
        int l2;
        zs2 = (zs)((Iterator) (obj)).next();
        vector = qy1.d(zs2);
        j2 = vector.size();
        l2 = 0;
        if(!flag) goto _L14; else goto _L13
_L13:
        sm sm1 = (sm)vector.elementAt(l2);
        if(l2 > 0)
        {
            int i3 = k1++;
            zs zs3 = zs2.b(i3);
            super.b[i3] = zs3;
            l.addElement(zs3);
            sm1.a(zs2, zs3);
        }
        l2++;
_L14:
        if(l2 < j2) goto _L13; else goto _L12
_L12:
        if(((Iterator) (obj)).hasNext()) goto _L11; else goto _L5
_L5:
    }

    public ks b(String s1, Vector vector)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        ks ks1 = (ks)g.elementAt(i1);
        if(ks1.i(s1))
            return ks1;
        i1++;
_L2:
        if(i1 >= g.size())
        {
            zs zs1 = new zs(0, this, s1);
            ks ks2 = new ks(0, this, zs1);
            vector.addElement(ks2);
            vector.addElement(zs1);
            return ks2;
        }
        if(true) goto _L1; else goto _L3
_L3:
    }

    public mm a(Hashtable hashtable, Hashtable hashtable1)
    {
        Hashtable hashtable2;
        is ais[];
        qy qy1;
        qy qy2;
        Vector vector;
        boolean flag1;
        flag1 = is.g;
        hashtable2 = new Hashtable(px.a(Math.max(7, (int)((double)(d() - f) * 0.69999999999999996D))));
        ais = (is[])super.b.clone();
        int i1 = Math.max(15, (int)((double)f * 0.69999999999999996D));
        qy1 = new qy(i1, 1);
        qy2 = new qy(i1);
        vector = new Vector(Math.max(5, (int)((double)f * 0.69999999999999996D)));
        if(hashtable1 == null) goto _L2; else goto _L1
_L1:
        Enumeration enumeration = hashtable1.keys();
        if(!flag1) goto _L4; else goto _L3
_L3:
        ws ws1 = (ws)enumeration.nextElement();
        zs zs2 = ws1.b();
        hashtable.put(zs2, zs2);
        zs zs3 = ws1.a();
        hashtable.put(zs3, zs3);
_L4:
        if(enumeration.hasMoreElements()) goto _L3; else goto _L2
_L2:
        int j1 = 0;
        if(!flag1) goto _L6; else goto _L5
_L5:
        zs zs1 = (zs)l.elementAt(j1);
        if(hashtable == null || !hashtable.containsKey(zs1))
        {
            String s1 = zs1.b();
            qy1.b(s1, zs1);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        ais[zs1.j()] = null;
        j1++;
_L6:
        if(j1 < l.size()) goto _L5; else goto _L7
_L7:
        qy qy3;
        int k1;
        a(qy1, vector, ais, hashtable2, qy2);
        qy3 = new qy(Math.max(10, (d() - f) / 4), 1);
        k1 = 0;
        if(!flag1) goto _L9; else goto _L8
_L8:
        ws ws2 = (ws)h.elementAt(k1);
        if(hashtable1 == null || !hashtable1.containsKey(ws2))
        {
            String s2 = ws2.m();
            qy3.b(s2, ws2);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        ais[ws2.j()] = null;
        k1++;
_L9:
        if(k1 < h.size()) goto _L8; else goto _L10
_L10:
        int l1;
        boolean flag;
        ArrayList arraylist;
        int i2;
        a(qy3, vector, ais, hashtable2, qy2);
        l1 = ais.length;
        flag = false;
        arraylist = new ArrayList(l1);
        i2 = 0;
        if(!flag1) goto _L12; else goto _L11
_L11:
        if(ais[i2] != null)
        {
            arraylist.add(ais[i2]);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        if(!flag)
        {
            arraylist.add(new zs(i2, this, e));
            flag = true;
        }
        i2++;
_L12:
        if(i2 < l1) goto _L11; else goto _L13
_L13:
        ais = (is[])arraylist.toArray(new is[arraylist.size()]);
        new mm(this, ais, hashtable2);
        if(gs.b != 0)
            is.g = !flag1;
        return;
    }

    public om[] i()
    {
        om aom[];
        int j1;
        int k1;
        boolean flag;
        flag = is.g;
        int i1 = n.size() + o.size() + p.size() + q.size() + m.size();
        aom = new om[i1];
        j1 = 0;
        k1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        aom[j1++] = (om)m.elementAt(k1);
        k1++;
_L2:
        if(k1 < m.size()) goto _L1; else goto _L3
_L3:
        int l1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        aom[j1++] = (om)n.elementAt(l1);
        l1++;
_L5:
        if(l1 < n.size()) goto _L4; else goto _L6
_L6:
        int i2 = 0;
        if(!flag) goto _L8; else goto _L7
_L7:
        aom[j1++] = (om)o.elementAt(i2);
        i2++;
_L8:
        if(i2 < o.size()) goto _L7; else goto _L9
_L9:
        int j2 = 0;
        if(!flag) goto _L11; else goto _L10
_L10:
        aom[j1++] = (om)p.elementAt(j2);
        j2++;
_L11:
        if(j2 < p.size()) goto _L10; else goto _L12
_L12:
        int k2 = 0;
        if(!flag) goto _L14; else goto _L13
_L13:
        aom[j1++] = (om)q.elementAt(k2);
        k2++;
_L14:
        if(k2 >= q.size())
            return aom;
        if(true) goto _L13; else goto _L15
_L15:
    }

    public vs a(String s1, String s2, String s3, Vector vector, it it1)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        vs vs1 = (vs)k.elementAt(i1);
        if(vs1.a(s1, s2, s3))
            return vs1;
        i1++;
_L2:
        if(i1 >= k.size())
        {
            ks ks1 = b(s1, vector);
            ws ws1 = a(s2, s3, vector);
            vs vs2 = new vs(0, this, ks1, ws1, it1);
            vector.addElement(vs2);
            return vs2;
        }
        if(true) goto _L1; else goto _L3
_L3:
    }

    public us b(String s1, String s2, String s3, Vector vector, it it1)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        us us1 = (us)i.elementAt(i1);
        if(us1.a(s1, s2, s3))
            return us1;
        i1++;
_L2:
        if(i1 >= i.size())
        {
            ks ks1 = b(s1, vector);
            ws ws1 = a(s2, s3, vector);
            us us2 = new us(0, this, ks1, ws1, it1);
            vector.addElement(us2);
            return us2;
        }
        if(true) goto _L1; else goto _L3
_L3:
    }

    public boolean j()
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = super.b.length;
        j1 = 1;
        if(!flag) goto _L2; else goto _L1
_L1:
        if(super.b[j1] instanceof ps)
            return true;
        j1++;
_L2:
        if(j1 >= i1)
            return false;
        if(true) goto _L1; else goto _L3
_L3:
    }

    boolean a(String s1)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        if(s1 == null || s1.length() == 0)
            return false;
        char c = s1.charAt(0);
        if(!Character.isJavaIdentifierStart(c))
            return false;
        i1 = s1.length();
        j1 = 1;
        if(!flag) goto _L2; else goto _L1
_L1:
        char c1 = s1.charAt(j1);
        if(c1 != '/' && !Character.isJavaIdentifierPart(c1))
            return false;
        j1++;
_L2:
        if(j1 >= i1)
            return true;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void a(vy vy1)
    {
        String s1;
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        s1 = super.a.j();
        i1 = g.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        String s2 = ((ks)g.elementAt(j1)).b();
        mt mt = null;
        if(!s2.equals(s1) && (mt = fh.a(s2)) != null)
            vy1.add(mt);
        j1++;
_L2:
        if(j1 >= i1)
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void a(HashSet hashset, HashSet hashset1, HashSet hashset2)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = g.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        String s1 = ((ks)g.elementAt(j1)).b();
        String s2 = lt.c(s1);
        if(s2 != null)
        {
            mt mt = fh.a(s2);
            if(mt != null)
                hashset.add(mt);
        }
        j1++;
_L2:
        if(j1 < i1) goto _L1; else goto _L3
_L3:
        int k1;
        int l1;
        k1 = k.size();
        l1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        vs vs1 = (vs)k.elementAt(l1);
        lu lu1 = (lu)vs1.o();
        if(lu1 != null)
            hashset1.add(lu1);
        mt mt1 = vs1.r();
        if(mt1 != null)
            hashset.add(mt1);
        l1++;
_L5:
        if(l1 < k1) goto _L4; else goto _L6
_L6:
        int i2;
        int j2;
        i2 = i.size();
        j2 = 0;
        if(!flag) goto _L8; else goto _L7
_L7:
        ArrayList arraylist;
        int i3;
        us us1 = (us)i.elementAt(j2);
        ou ou1 = (ou)us1.o();
        if(ou1 != null)
            hashset2.add(ou1);
        arraylist = us1.r();
        i3 = 0;
        if(!flag) goto _L10; else goto _L9
_L9:
        hashset.add(arraylist.get(i3));
        i3++;
_L10:
        if(i3 < arraylist.size()) goto _L9; else goto _L11
_L11:
        j2++;
_L8:
        if(j2 < i2) goto _L7; else goto _L12
_L12:
        int k2;
        int l2;
        k2 = j.size();
        l2 = 0;
        if(!flag) goto _L14; else goto _L13
_L13:
        ArrayList arraylist1;
        int j3;
        ts ts1 = (ts)j.elementAt(l2);
        ou ou2 = (ou)ts1.o();
        if(ou2 != null)
            hashset2.add(ou2);
        arraylist1 = ts1.r();
        j3 = 0;
        if(!flag) goto _L16; else goto _L15
_L15:
        hashset.add(arraylist1.get(j3));
        j3++;
_L16:
        if(j3 < arraylist1.size()) goto _L15; else goto _L17
_L17:
        l2++;
_L14:
        if(l2 >= k2)
            return;
        if(true) goto _L13; else goto _L18
_L18:
    }

    public void a(HashSet hashset, HashMap hashmap, yg yg, bs bs1)
    {
        int i1;
        boolean flag;
        flag = is.g;
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        ss ss1 = (ss)i.elementAt(i1);
        qm qm;
        try
        {
            if((qm = ss1.b(yg)) != null)
            {
                hashmap.put(ss1, qm);
                hashset.add(super.a);
            }
        }
        catch(xb xb1)
        {
            bs1.d(z[3], z[5] + ss1.k() + z[2] + xb1.a() + z[6]);
        }
        catch(wb wb1)
        {
            bs1.d(z[3], z[5] + ss1.k() + z[4] + wb1.getMessage());
        }
        i1++;
_L2:
        if(i1 < i.size()) goto _L1; else goto _L3
_L3:
        int j1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        ss ss2 = (ss)j.elementAt(j1);
        qm qm1;
        try
        {
            if((qm1 = ss2.b(yg)) != null)
            {
                hashmap.put(ss2, qm1);
                hashset.add(super.a);
            }
        }
        catch(xb xb2)
        {
            bs1.d(z[3], z[5] + ss2.k() + z[2] + xb2.a() + z[0]);
        }
        catch(wb wb2)
        {
            bs1.d(z[3], z[5] + ss2.k() + z[1] + wb2.getMessage());
        }
        j1++;
_L5:
        if(j1 >= j.size())
            return;
        if(true) goto _L4; else goto _L6
_L6:
    }

    public void a(ed ed, Hashtable hashtable, Hashtable hashtable1, Hashtable hashtable2, HashSet hashset, HashSet hashset1)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = k.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        vs vs1 = (vs)k.elementAt(j1);
        lu lu1 = (lu)vs1.o();
        if(!hashset.contains(vs1))
        {
            hashtable2.put(vs1, vs1);
            vs1.a(hashtable, hashtable1);
        }
        j1++;
_L2:
        if(j1 < i1) goto _L1; else goto _L3
_L3:
        int k1;
        int l1;
        k1 = i.size();
        l1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        us us1 = (us)i.elementAt(l1);
        ou ou1 = (ou)us1.o();
        if(!hashset.contains(us1))
        {
            hashtable2.put(us1, us1);
            us1.a(hashtable, hashtable1);
        }
        l1++;
_L5:
        if(l1 < k1) goto _L4; else goto _L6
_L6:
        int i2;
        int j2;
        i2 = j.size();
        j2 = 0;
        if(!flag) goto _L8; else goto _L7
_L7:
        ts ts1 = (ts)j.elementAt(j2);
        ou ou2 = (ou)ts1.o();
        if(!hashset.contains(ts1))
        {
            hashtable2.put(ts1, ts1);
            ts1.a(hashtable, hashtable1);
        }
        j2++;
_L8:
        if(j2 < i2) goto _L7; else goto _L9
_L9:
        int k2;
        int l2;
        k2 = m.size();
        l2 = 0;
        if(!flag) goto _L11; else goto _L10
_L10:
        ys ys1 = (ys)m.elementAt(l2);
        if(!hashset1.contains(ys1))
        {
            zs zs1 = ys1.m();
            hashtable.put(zs1, zs1);
        }
        l2++;
_L11:
        if(l2 >= k2)
            return;
        if(true) goto _L10; else goto _L12
_L12:
    }

    private void a(qy qy1, Vector vector, is ais[], Hashtable hashtable, qy qy2)
    {
        Enumeration enumeration;
        boolean flag;
        flag = is.g;
        enumeration = qy1.e();
        if(!flag) goto _L2; else goto _L1
_L1:
        Vector vector1;
        int i1;
        Vector vector2;
        is is1;
        int j1;
        String s1 = (String)enumeration.nextElement();
        vector1 = qy1.d(s1);
        i1 = vector1.size();
        vector2 = null;
        if(i1 > 1)
            vector2 = new Vector(i1 - 1);
        is1 = (is)vector1.elementAt(0);
        vector.addElement(is1);
        j1 = 1;
        if(!flag) goto _L4; else goto _L3
_L3:
        is is2 = (is)vector1.elementAt(j1);
        int k1 = is2.j();
        ais[k1] = null;
        hashtable.put(is2, is1);
        vector2.addElement(is2);
        j1++;
_L4:
        if(j1 < i1) goto _L3; else goto _L5
_L5:
        if(i1 > 1)
            qy2.a(is1, vector2);
_L2:
        if(!enumeration.hasMoreElements())
            return;
        if(true) goto _L1; else goto _L6
_L6:
    }

    public void k()
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = k.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        ((vs)k.elementAt(j1)).p();
        j1++;
_L2:
        if(j1 >= i1)
            return;
        if(true) goto _L1; else goto _L3
_L3:
    }

    public void l()
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = i.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        ((us)i.elementAt(j1)).p();
        j1++;
_L2:
        if(j1 < i1) goto _L1; else goto _L3
_L3:
        int k1;
        i1 = j.size();
        k1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        ((ts)j.elementAt(k1)).p();
        k1++;
_L5:
        if(k1 >= i1)
            return;
        if(true) goto _L4; else goto _L6
_L6:
    }

    private void b(is is1)
    {
        boolean flag = is.g;
        int i1 = is1.l();
        switch(i1)
        {
        case 2: // '\002'
        default:
            break;

        case 7: // '\007'
            g.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 12: // '\f'
            h.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 10: // '\n'
            i.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 11: // '\013'
            j.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 9: // '\t'
            k.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 1: // '\001'
            l.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 8: // '\b'
            m.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 3: // '\003'
            n.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 5: // '\005'
            o.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 4: // '\004'
            p.removeElement(is1);
            if(!flag)
                break;
            // fall through

        case 6: // '\006'
            q.removeElement(is1);
            break;
        }
    }

    public void a(it it1)
    {
        int i1;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = k.size();
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        vs vs1 = (vs)k.elementAt(j1);
        vs1.a(it1);
        j1++;
_L2:
        if(j1 < i1) goto _L1; else goto _L3
_L3:
        int k1;
        int l1;
        k1 = i.size();
        l1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        us us1 = (us)i.elementAt(l1);
        us1.a(it1);
        l1++;
_L5:
        if(l1 < k1) goto _L4; else goto _L6
_L6:
        int i2;
        int j2;
        i2 = j.size();
        j2 = 0;
        if(!flag) goto _L8; else goto _L7
_L7:
        ts ts1 = (ts)j.elementAt(j2);
        ts1.a(it1);
        j2++;
_L8:
        if(j2 >= i2)
            return;
        if(true) goto _L7; else goto _L9
_L9:
    }

    public void a(Hashtable hashtable, Hashtable hashtable1, HashSet hashset, HashSet hashset1, HashSet hashset2)
    {
        int i1;
        Vector vector;
        int j1;
        boolean flag;
        flag = is.g;
        i1 = g.size();
        vector = new Vector(i1);
        j1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        int k4 = gs.b;
        gs.b = ++k4;
_L4:
        ks ks1 = (ks)g.get(j1);
        if(hashset1.contains(ks1))
        {
            vector.add(ks1);
            if(!flag)
                continue; /* Loop/switch isn't completed */
        }
        zs zs1 = ks1.a();
        hashtable.put(zs1, zs1);
        j1++;
_L2:
        if(j1 < i1) goto _L4; else goto _L3
_L3:
        int k1;
        g = vector;
        i1 = l.size();
        vector = new Vector(i1);
        k1 = 0;
        if(!flag) goto _L6; else goto _L5
_L5:
        zs zs2 = (zs)l.get(k1);
        if(!hashtable.containsKey(zs2))
            vector.add(zs2);
        k1++;
_L6:
        if(k1 < i1) goto _L5; else goto _L7
_L7:
        int l1;
        l = vector;
        i1 = h.size();
        vector = new Vector(i1);
        l1 = 0;
        if(!flag) goto _L9; else goto _L8
_L8:
        ws ws1 = (ws)h.get(l1);
        if(!hashtable1.containsKey(ws1))
            vector.add(ws1);
        l1++;
_L9:
        if(l1 < i1) goto _L8; else goto _L10
_L10:
        int i2;
        h = vector;
        i1 = k.size();
        vector = new Vector(i1);
        i2 = 0;
        if(!flag) goto _L12; else goto _L11
_L11:
        vs vs1 = (vs)k.get(i2);
        if(hashset.contains(vs1))
            vector.add(vs1);
        i2++;
_L12:
        if(i2 < i1) goto _L11; else goto _L13
_L13:
        int j2;
        k = vector;
        i1 = i.size();
        vector = new Vector(i1);
        j2 = 0;
        if(!flag) goto _L15; else goto _L14
_L14:
        us us1 = (us)i.get(j2);
        if(hashset.contains(us1))
            vector.add(us1);
        j2++;
_L15:
        if(j2 < i1) goto _L14; else goto _L16
_L16:
        int k2;
        i = vector;
        i1 = j.size();
        vector = new Vector(i1);
        k2 = 0;
        if(!flag) goto _L18; else goto _L17
_L17:
        ts ts1 = (ts)j.get(k2);
        if(hashset.contains(ts1))
            vector.add(ts1);
        k2++;
_L18:
        if(k2 < i1) goto _L17; else goto _L19
_L19:
        int l2;
        j = vector;
        i1 = m.size();
        vector = new Vector(i1);
        l2 = 0;
        if(!flag) goto _L21; else goto _L20
_L20:
        ys ys1 = (ys)m.get(l2);
        if(hashset2.contains(ys1))
            vector.add(ys1);
        l2++;
_L21:
        if(l2 < i1) goto _L20; else goto _L22
_L22:
        int i3;
        m = vector;
        i1 = n.size();
        vector = new Vector(i1);
        i3 = 0;
        if(!flag) goto _L24; else goto _L23
_L23:
        os os1 = (os)n.get(i3);
        if(hashset2.contains(os1))
            vector.add(os1);
        i3++;
_L24:
        if(i3 < i1) goto _L23; else goto _L25
_L25:
        int j3;
        n = vector;
        i1 = o.size();
        vector = new Vector(i1);
        j3 = 0;
        if(!flag) goto _L27; else goto _L26
_L26:
        qs qs1 = (qs)o.get(j3);
        if(hashset2.contains(qs1))
            vector.add(qs1);
        j3++;
_L27:
        if(j3 < i1) goto _L26; else goto _L28
_L28:
        int k3;
        o = vector;
        i1 = p.size();
        vector = new Vector(i1);
        k3 = 0;
        if(!flag) goto _L30; else goto _L29
_L29:
        ns ns1 = (ns)p.get(k3);
        if(hashset2.contains(ns1))
            vector.add(ns1);
        k3++;
_L30:
        if(k3 < i1) goto _L29; else goto _L31
_L31:
        int l3;
        p = vector;
        i1 = q.size();
        vector = new Vector(i1);
        l3 = 0;
        if(!flag) goto _L33; else goto _L32
_L32:
        ms ms1 = (ms)q.get(l3);
        if(hashset2.contains(ms1))
            vector.add(ms1);
        l3++;
_L33:
        if(l3 < i1) goto _L32; else goto _L34
_L34:
        int i4;
        ArrayList arraylist;
        int j4;
        q = vector;
        i4 = super.b.length;
        arraylist = new ArrayList(i4);
        j4 = 0;
        if(!flag) goto _L36; else goto _L35
_L35:
        is is1 = super.b[j4];
        if(is1 instanceof zs)
        {
            if(hashtable.containsKey(is1))
                continue;
            arraylist.add(is1);
            if(!flag)
                continue;
        }
        if(is1 instanceof ws)
        {
            if(hashtable1.containsKey(is1))
                continue;
            arraylist.add(is1);
            if(!flag)
                continue;
        }
        if(is1 instanceof ks)
        {
            if(!hashset1.contains(is1))
                continue;
            arraylist.add(is1);
            if(!flag)
                continue;
        }
        if(is1 instanceof rs)
        {
            if(!hashset.contains(is1))
                continue;
            arraylist.add(is1);
            if(!flag)
                continue;
        }
        if(is1 instanceof om)
        {
            if(hashset2.contains(is1))
            {
                arraylist.add(is1);
                if(!flag)
                    continue;
            }
            if(is1.i() != 2)
                continue;
            j4++;
            if(!flag)
                continue;
        }
        arraylist.add(is1);
        j4++;
_L36:
        if(j4 >= i4)
        {
            super.b = (is[])arraylist.toArray(new is[arraylist.size()]);
            f();
            f = super.b.length;
            return;
        }
        if(true) goto _L35; else goto _L37
_L37:
    }

    private static char[] z(String str) {
        char ac[] = str.toCharArray();
        int clen = ac.length;
        if (clen >= 2)
            return ac;
        ac[0] ^=5;
        return ac;
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key =0x3f;
                    break;
                case 1:
                    key =125;
                    break;
                case 2:
                    key = 72;
                    break;
                case 3:
                    key =2;
                    break;
                default:
                    key =5;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[] = new String[7];
        as[0] = z(z("\030ShGkL\b:g%^\r8pjO\017!cqZ]+ndL\0168cqW]!q%L\030<\"Gz;\007P@\037\036$cvL\030;\"dM\030hnj^\031-f+\037Uz+"));
        as[1] = z(z("\030]+mpS\031&%q\037\037-\"fW\030+i`[Sh*7\026]r\""));
        as[2] = z(z("\030]+mpS\031&%q\037\037-\"fW\030+i`[]*gf^\b;g%\\\022=naQZ<\"cV\023,\"\""));
        as[3] = z(z("|1\tQVo<\034J%h<\032LLq:r"));
        as[4] = z(z("\030]+mpS\031&%q\037\037-\"fW\030+i`[Sh*4\026]r\""));
        as[5] = z(z("m\030.gwZ\023+g%K\022ho`K\025'f%\030"));
        as[6] = z(z("\030ShGkL\b:g%^\r8pjO\017!cqZ]+ndL\0168cqW]!q%L\030<\"Gz;\007P@\037\036$cvL\030;\"dM\030hnj^\031-f+\037Uy+"));
        z = as;
    }
}